package br.ucb.ProjetoFinal.view;

import br.ucb.ProjetoFinal.bean.ApresentacaoGrupoFamiliar;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/*
 * Managed bean responsavel pelo caso de uso MANTER GRUPOFAMILIAR
 */
@ManagedBean(name="managedGrupoFam")
@SessionScoped
public class ManagedGrupoFamiliar {

//////////////////////////////////ATRIBUTOS/////////////////////////////////////

    //Usado tanto no cadastro quanto nas consultas, para armazenar o valor dos campos
    private ApresentacaoGrupoFamiliar grupoFamiliar;
    //Esta LIST receberá os vários grupoFamiliars cadastrados, na hora da pesquisa
    private List<ApresentacaoGrupoFamiliar> grupoFamiliars;
    //Usado na CONSULTA
    private String nisResponsavel;
    //Usado na CONSULTA
    private String numRadioPesquisa;


////////////////////////////////////////////////////////////////////////////////

    public ManagedGrupoFamiliar() {
        //Seta o valor inicial para os radio-buttons na pagina da consulta
        setNumRadioPesquisa("cod");
        setGrupoFamiliar(new ApresentacaoGrupoFamiliar());
    }


    // METODO USADO PARA PESQUISA DE GRUPOS FAMILIARES////////////////////////////
        public String procurar(){

            //setGrupoFamiliars(escolhe.pesquisaGrupoFamiliars(getNumRadioPesquisa(),getGrupoFamiliar()));

            //Se o array estiver vazio, significa que não foram encontrados resultados
            if(getGrupoFamiliars().isEmpty())
                return "semResults";
            else
                return "listGrupoFam";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////
        
    // METODO USADO PARA PESQUISA DE GRUPOS FAMILIARES////////////////////////////
        public String procurarTodos(){

            //setGrupoFamiliars(escolhe.pesquisaGrupoFamiliars(getNumRadioPesquisa(),getGrupoFamiliar()));

            //Se o array estiver vazio, significa que não foram encontrados resultados
            if(getGrupoFamiliars().isEmpty())
                return "semResults";
            else
                return "listGrupoFam";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    // METODO USADO PARA DETALHAR UM GRUPO FAMILIAR/////////////////////////////
        public String detalhar(){
            String index = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("index");
            setGrupoFamiliar(getGrupoFamiliars().get(Integer.parseInt(index)));

            return "result";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    //FUNÇÃO USADA PARA IR PARA A PAGINA DE CONSULTA AOS GRUPOS FAMILIARES
        public String consultaGrup(){
            setGrupoFamiliar(new ApresentacaoGrupoFamiliar());

            return "consultaGrupFam";
        }

    //FIM DAS FUNÇÕES///////////////////////////////////////////////////////////


//GETTERS & SETTERS/////////////////////////////////////////////////////////////
    public ApresentacaoGrupoFamiliar getGrupoFamiliar() {
        return grupoFamiliar;
    }

    public void setGrupoFamiliar(ApresentacaoGrupoFamiliar grupoFamiliar) {
        this.grupoFamiliar = grupoFamiliar;
    }

    public void setGrupoFamiliars(List<ApresentacaoGrupoFamiliar> grupoFamiliars) {
        this.grupoFamiliars = grupoFamiliars;
    }

    public List<ApresentacaoGrupoFamiliar> getGrupoFamiliars() {
        return grupoFamiliars;
    }

    public void setNisResponsavel(String nisResponsavel) {
        this.nisResponsavel = nisResponsavel;
    }

    public String getNisResponsavel() {
        return nisResponsavel;
    }
    public String getNumRadioPesquisa() {
        return numRadioPesquisa;
    }

    public void setNumRadioPesquisa(String numRadioPesquisa) {
        this.numRadioPesquisa = numRadioPesquisa;
    }
}
